INMaster = "\tWelcome to the MUI demonstration program. This little toy will show you how easy it is to create graphical user interfaces with MUI and how powerful the results are.\n\tMUI is based on BOOPSI, Amiga's basic object oriented programming system. For details about programming, see the 'ReadMe' file and the documented source code of this demo. Only one thing so far: it's really easy!\n\tNow go on, click around and watch this demo. Or use your keyboard (TAB, Return, Cursor-Keys) if you like that better. Hint: play around with the MUI preferences program and customize every pixel to fit your personal taste.";
INNotify = "\tMUI objects communicate with each other with the aid of a broadcasting system. This system is frequently used in every MUI application. Binding an up and a down arrow to a prop gadget e.g. makes up a scrollbar, binding a scrollbar to a list makes up a listview. You can also bind windows to buttons, thus the window will be opened when the button is pressed.\n\tRemember: The main loop of this demo program simply consists of a Wait(). Once set up, MUI handles all user actions concerning the GUI automatically.";
INFrames = "\tEvery MUI object can have a surrounding frame. Several types are available, all adjustable with the preferences program.";
INImages = "\tMUI offers a vector image class, that allows images to be zoomed to any dimension. Every MUI image is transformed to match the current screens colors before displaying.\n\tThere are several standard images for often used GUI components (e.g. Arrows). These standard images can be defined via the preferences program.";
INGroups = "\tGroups are very important for MUI. Their combinations determine how the GUI will look. A group may contain any number of child objects, which are positioned either horizontal or vertical.\n\tWhen a group is layouted, the available space is distributed between all of its children, depending on their minimum and maximum dimensions and on their weight.\n\tOf course, the children of a group may be other groups. There are no restrictions.";
INBackfill = "\tEvery object can have his own background, if it wants to. MUI offers several standard backgrounds (e.g. one of the DrawInfo pens or one of the rasters below).\nThe prefs program allows defining a large number of backgrounds... try it!";
INListviews = "\tMUI's list class is very flexible. A list can be made up of any number of columns containing formatted text or even images. Several subclasses of list class (e.g. a directory class and a volume class) are available. All MUI lists have the capability of multi selection, just by setting a single flag.\n\tThe small info texts at the top of each demo window are made with floattext class. This one just needs a character string as input and formats the text according to its width.";
INCycle = "\tCycle gadgets, radios buttons and simple lists can be used to let the user pick exactly one selection from a list of choices. In this example, all three possibilities are shown. Of course they are connected via broadcasting, so every object will immediately be notified and updated when necessary.";
INString = "\tOf course, MUI offers a standard string gadget class for text input. The gadget in this example is attached to the list, you can control the list cursor from within the gadget.";
(*
** This are the entries for the cycle gadgets and radio buttons.
*)
TYPE
S10 = ARRAY 10 OF Exec.STRPTR;
S4 = ARRAY 4 OF Exec.STRPTR;
S5 = ARRAY 5 OF Exec.STRPTR;
CONST
CYAComputer = S10( y.ADR("Amiga 500"),
y.ADR("Amiga 600"),
y.ADR("Amiga 1000 :)"),
y.ADR("Amiga 1200"),
y.ADR("Amiga 2000"),
y.ADR("Amiga 3000"),
y.ADR("Amiga 4000"),
y.ADR("Amiga 4000T"),
y.ADR("Atari ST :("),
NIL );
CYAPrinter =S4( y.ADR("HP Deskjet"),
y.ADR("NEC P6"),
y.ADR("Okimate 20"),
NIL );
CYADisplay = S5( y.ADR("A1081"),
y.ADR("NEC 3D"),
y.ADR("A2024"),
y.ADR("Eizo T660i"),
NIL);
(*
** Some Macros to make my life easier and the actual source